document.addEventListener('DOMContentLoaded', function() {
    // 表单提交处理
    const registerForm = document.querySelector('.register-form');
    if (registerForm) {
        registerForm.addEventListener('submit', function(e) {
            e.preventDefault();
            
            // 获取表单数据（包含所有字段）
            const formData = {
                username: document.getElementById('username').value.trim(),
                real_name: document.getElementById('real_name').value.trim(),
                phone: document.getElementById('phone').value.trim(),
                id_card: document.getElementById('id_card').value.trim(),
                password: document.getElementById('password').value.trim(),
                confirmPassword: document.getElementById('confirm-password').value.trim(),
                gender: document.getElementById('gender').value
            };

            // 表单验证
            if (validateForm(formData)) {
                registerUser(formData);
            }
        });
    }

    // 实时输入验证
    setupRealTimeValidation();
});

// 设置实时输入验证
function setupRealTimeValidation() {
    // 手机号验证
    const phoneInput = document.getElementById('phone');
    if (phoneInput) {
        phoneInput.addEventListener('input', function() {
            validatePhoneFormat(this);
        });
    }

    // 身份证验证
    const idCardInput = document.getElementById('id_card');
    if (idCardInput) {
        idCardInput.addEventListener('input', function() {
            validateIdCardFormat(this);
            // 自动将最后一位转为大写
            if (this.value.length === 18) {
                this.value = this.value.slice(0, 17) + this.value.slice(17).toUpperCase();
            }
        });
    }
}

// 表单验证函数
function validateForm(formData) {
    // 验证昵称（2-20个字符）
    if (!formData.username || formData.username.length < 2 || formData.username.length > 20) {
        showError('昵称需为2-20个字符');
        return false;
    }

    // 验证真实姓名（2-10个中文字符）
    if (!/^[\u4e00-\u9fa5]{2,10}$/.test(formData.real_name)) {
        showError('请输入2-10个中文字符的真实姓名');
        return false;
    }

    // 验证手机号
    if (!/^1[3-9]\d{9}$/.test(formData.phone)) {
        showError('请输入有效的11位手机号码');
        return false;
    }

    // 验证身份证号（基础格式）
    if (!/^\d{17}[\dXx]$/.test(formData.id_card)) {
        showError('请输入有效的18位身份证号(最后一位可以是X)');
        return false;
    }

    
    if (!/.{5,20}/.test(formData.password)) {
        showError('密码长度需要达到5-20位');
        return false;
    }

    // 验证确认密码
    if (formData.password !== formData.confirmPassword) {
        showError('两次输入的密码不一致');
        return false;
    }

    // 验证性别
    if (!formData.gender) {
        showError('请选择性别');
        return false;
    }

    // 验证协议勾选
    const agreeCheckbox = document.querySelector('input[type="checkbox"]');
    if (!agreeCheckbox?.checked) {
        showError('请阅读并同意用户协议和隐私政策');
        return false;
    }

    return true;
}

// 注册用户函数
function registerUser(formData) {
	
	const requestData = {
	    username: formData.username,
	    real_name: formData.real_name,
	    phone: formData.phone,
	    id_card: formData.id_card,
	    password: formData.password,
	    gender: formData.gender
	};
    const registerBtn = document.querySelector('.register-btn');
    if (!registerBtn) return;

    // 保存按钮原始状态
    const originalText = registerBtn.textContent;
    registerBtn.disabled = true;
    registerBtn.innerHTML = '<i class="fas fa-spinner fa-spin"></i> 注册中';

    // 准备发送的数据（移除确认密码字段）
    

    // 发送注册请求
    fetch('http://localhost:8080/api/register', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify(requestData)
    })
    .then(response => {
        if (!response.ok) {
            return response.json().then(err => { 
                throw new Error(err.message || `HTTP错误! 状态码: ${response.status}`);
            });
        }
        return response.json();
    })
    .then(data => {
        if (data?.code === 200) {  // 根据后端实际返回判断
            showSuccess('注册成功！即将跳转到登录页面...');
            setTimeout(() => {
                window.location.href = 'login.html';
            }, 1500);
        } else {
            throw new Error(data?.message || '注册失败，请重试');
        }
    })
    .catch(error => {
        console.error('注册错误:', error);
        showError(`注册失败: ${error.message}`);
    })
    .finally(() => {
        registerBtn.disabled = false;
        registerBtn.innerHTML = originalText;
    });
}

// 实时验证函数
function validatePhoneFormat(input) {
    const phonePattern = /^1[3-9]\d{0,10}$/;
    if (!phonePattern.test(input.value.replace(/\s/g, ''))) {
        input.setCustomValidity('请输入有效的手机号');
    } else {
        input.setCustomValidity('');
    }
}

function validateIdCardFormat(input) {
    const idCardPattern = /^\d{0,17}[\dXx]?$/;
    if (!idCardPattern.test(input.value)) {
        input.setCustomValidity('请输入17位数字+1位数字/X');
    } else {
        input.setCustomValidity('');
    }
}

// 显示错误提示（可替换为更优雅的UI提示）
function showError(message) {
    alert(message); // 实际项目中建议使用Toast或模态框
}

function showSuccess(message) {
    alert(message); // 实际项目中建议使用Toast或模态框
}